﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
//using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AdatbazisProjekt
{
    public partial class EddigiVasarlasokForm : Form
    {
		//Ez a felulet az eddigi vasarlokrol eltarolt adatokra hivatkozik
        FMenu fMenu;
        EddigiVasarlasokData dal;
        bool err;

        public EddigiVasarlasokForm(FMenu f)
        {
            fMenu = f;
            InitializeComponent();
            dal = new EddigiVasarlasokData(ref err);
            Feltolt();
        }

        private void EddigiVasarlasok_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            fMenu.Show();
            this.Close();
        }

        private void TelSzam_TextBox_TextChanged(object sender, EventArgs e)
        {
			//telefonszam mezohoz kizarolag szamokat lehet begepelni
            long temp;
            if (telSzam_TextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
            {
                try
                {
                    temp = Int64.Parse(telSzam_TextBox.Text);
                    Feltolt();// ide majd bejon az adatbaziban valo kereses metodusanak meghivasa
                }
                catch (Exception)
                {
                    MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat! Kerem probalja ujra figyelmesebben");
                    telSzam_TextBox.Text = "";
                    
                }
            }
        }

        private void szemSzam_TextBox_TextChanged(object sender, EventArgs e)
        {
            long temp;
            if (szemSzam_TextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
            {
                try
                {
                    temp = Int64.Parse(szemSzam_TextBox.Text);
                    Feltolt();     // ide majd bejon az adatbaziban valo kereses metodusanak meghivasa
                }
                catch (Exception)
                {
                    MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat! Kerem probalja ujra figyelmesebben");
                    szemSzam_TextBox.Text = "";
                
                }
            }
        }

        private void Feltolt()
        {
			// a ListView feltolteset vegzo metodus, amennyiben minden parameter "" akkor minden adatot leker ellenkezo esetben szurest is vegez
            try
            {
                err = false;
                VasarlasokListView.Items.Clear();
                
                List<Vasarlas> ered = dal.VasarlasAdatLeker(nev_TextBox.Text,termek_TextBox.Text,lakHely_TextBox.Text,telSzam_TextBox.Text,szemSzam_TextBox.Text,ArTextBox.Text,DatumTextBox.Text, ref err);
                if (!err)
                {
                    for (int i = 0; i < ered.Count; i++)
                    {
                        ListViewItem elem = new ListViewItem(ered[i].nev);
                        elem.SubItems.Add(ered[i].termek);
                        elem.SubItems.Add(ered[i].lakhely);
                        elem.SubItems.Add(ered[i].telefonszam);
                        elem.SubItems.Add(ered[i].szemelyszam);
                        elem.SubItems.Add(ered[i].ar);
                        elem.SubItems.Add(ered[i].datum);
                        elem.SubItems.Add(ered[i].vasarlasID);

                        VasarlasokListView.Items.Add(elem);
                    }
                }
                else
                {
                    MessageBox.Show("Hiba az adato lekerdezese kozben");
                }

            }
            catch (Exception e)
            {
                MessageBox.Show("Hiba:" + e.Message);
            }
        }

        private void nev_TextBox_TextChanged(object sender, EventArgs e)
        {
			// Amennyiben valtozik a mezo erteke ujra feltoltjuk a ListView a friss adatokkal
            Feltolt();
        }

        private void termek_TextBox_TextChanged(object sender, EventArgs e)
        {
			// Amennyiben valtozik a mezo erteke ujra feltoltjuk a ListView a friss adatokkal
            Feltolt();
        }

        private void lakHely_TextBox_TextChanged(object sender, EventArgs e)
        {
			// Amennyiben valtozik a mezo erteke ujra feltoltjuk a ListView a friss adatokkal
            Feltolt();
        }

        private void ArTextBox_TextChanged(object sender, EventArgs e)
        {
            long temp;
            if (ArTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
            {
                try
                {
                    temp = Int64.Parse(ArTextBox.Text);
                    Feltolt();	// ide majd bejon az adatbaziban valo kereses metodusanak meghivasa
                }
                catch (Exception)
                {
                    MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat! Kerem probalja ujra figyelmesebben");
                    ArTextBox.Text = "";
                    
                }
            }
        }

        private void VasarloTorolButton_Click(object sender, EventArgs e)
        {
			// a kijelolt vasarlo torleset hivja meg, vagy amennyiben nincs vasarlo kijelolve az elso vasarlot toroljuk
            try
            {
                if (MessageBox.Show("FIGYELEM: Ha torli a vasarlot az osszes ezzel a vasarloval kapcsolatos vasarlasi adat el fog veszni! ", "Torles!", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    dal.VasarloTorles(VasarlasokListView.FocusedItem.SubItems[4].Text, ref err);
                    Feltolt();
                }
            }
            catch (Exception ex)
            {
                
                MessageBox.Show("Hiba lepett fel a torles soran kerem probalja ujra!"+ex.Message);
            }
        }

        private void VasarlasTorolButton_Click(object sender, EventArgs e)
        {
			// A vasarlra vonatkozo adatok torlesre
            try
            {
                if (MessageBox.Show("Biztos benne, hogy torolni akarja ezt vasarlasi adatot?", "Torles!", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    dal.VasarlasTorles(VasarlasokListView.FocusedItem.SubItems[7].Text, ref err);
                    Feltolt();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Hiba lepett fel a torles soran kerem probalja ujra!");
            }
        }

        private void DatumTextBox_TextChanged(object sender, EventArgs e)
        {
            Feltolt();
        }

		private void UtolsoHonapButton_Click(object sender, EventArgs e)
		{
			// A metodus az utolsohonapban tortent vasarlasokat  listazza ki a ListViewba
			try
			{
				err = false;
				VasarlasokListView.Items.Clear();

				List<Vasarlas> ered = dal.UtolsoHonap(ref err);
				if (!err)
				{
					for (int i = 0; i < ered.Count; i++)
					{
						ListViewItem elem = new ListViewItem(ered[i].nev);
						elem.SubItems.Add(ered[i].termek);
						elem.SubItems.Add(ered[i].lakhely);
						elem.SubItems.Add(ered[i].telefonszam);
						elem.SubItems.Add(ered[i].szemelyszam);
						elem.SubItems.Add(ered[i].ar);
						elem.SubItems.Add(ered[i].datum);
						elem.SubItems.Add(ered[i].vasarlasID);

						VasarlasokListView.Items.Add(elem);
					}
				}
				else
				{
					MessageBox.Show("Hiba az adato lekerdezese kozben");
				}

			}
			catch (Exception)
			{
				MessageBox.Show("Hiba az adatok lekerdezese kozben" );
			}
		}
    }
}
